package com.wchen.gdoc.generate.util;

import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.List;

/**
 * 文件路径工具类
 *
 * @author  wchen
 * @date    2019/11/11
 */
public class FilePathUtil {

    /**
     * 获取文件路径下的所有指定后缀的文件
     * @param filePath
     * @param fileType
     * @return
     */
    public static List<String> getAllPathFile(String filePath, String fileType){
        List<String> filePathList = new ArrayList<>();
        File dir = new File(filePath);
        if(!dir.exists() && !filePath.endsWith(fileType)){
            return filePathList;
        }

        if(!dir.isDirectory() ){
            filePathList.add(filePath);
            return filePathList;
        }

        File[] dirFiles = dir.listFiles(new FileFilter() {
            @Override
            public boolean accept(File file) {
                return file.isDirectory() || (file.getName().endsWith(fileType));
            }
        });

        for (File file : dirFiles) {
            if (file.isDirectory()) {
                filePathList.addAll(getAllPathFile(file.getAbsolutePath(), fileType));
            } else {
                filePathList.add(file.getAbsolutePath());
            }
        }

        return filePathList;
    }

}
